GH - VSCode 双向联动编程——Script Parasite

小zz Arch Z 2021-08-14原文 发表于


问题发现


根据小z的小观察,在多数情况下Grasshopper- C# 编程算法设计一般有两种工作流,其中每一种都颇有明显弊病,但也是无奈而为之。因为尽管GH作为Rhino的插件,与Rhino结合完美,但是编程软件和GH结合并不相当完善,毕竟算法设计师仍为行业少数人群。




常用方法一:Visual Studio设计算法,直接或间接更新到Rhino


具体做法:这一方法的流行来源于斯图加特大学ICD Long Nguyen 的Workshop教学中(https://www.youtube.com/channel/UCUJgViAduAoRsf89ZtyF8dQ)。方法为利用GH在VS中的模板(Grasshopper Assembly Template)进行电池的研发,在编程的过程中将插件生成位置直接定位到“/component"的常用插件位置中,然后利用Rhino的隐藏命令“GrsshopperDeveloperSettings"和”GrasshopperReloadAssemblies"强迫GH重启达到更新插件的目的。


缺点:

1、只能用于设计研发GH电池,对于仅仅希望做代码的设计师来说过程过于冗余。

2、实时更新依赖于隐藏命令重启GH,重启耗时长,命令易导致Rhino-GH崩溃。

3、VisualStudio对于建筑师的编程研发来说过于繁杂,许多功能无法用上,不够轻量化。





常用方法二:直接在GH的C# Script Editor 电池中编写和设计


该方法直接简单,直接在GH中使用Script Editor电池,打开使用即可。也是GH-C#入门级别的操作方式。


缺点:

1、由于GH的C# Script Editor 的存在目的仅是完成简单的编程,以弥补部分已有GH电池无法完成的功能,它远没有VS或VSCode的界面友善。大到视窗缩放,小到类型提示、编程更正都十分的不完备,使得编码效率低下,对于较大的编程研发,常常会出现后期因为拼写错误、格式错误等简单问题引发的Bug。

2、 Script Editor没有Debug功能,对于定位编程问题有很大困难。

3、Script Editor界面可调整性小,UI设计不美观,影响设计师编程耐心。


恼火的GH内置编译器




两种编译器对比




进阶方法:利用Script Parasite插件实现GH-VS双向联动


Github 中的解决方案原文


Github上一位AEC的编程设计师 Alan Rynne 分享了一个详细联动的方式(https://github.com/Paramdigma/VSCode-Grasshopper-Scripting,并向小z推荐了他的工作流。具体使用方式如下:


使用方式


1、下载安装 Script Parasitehttps://www.food4rhino.com/en/app/scriptparasite-grasshopper)。


Script Parasite


实施联动的核心插件,能将 Script Editor中的代码导出为.cs和.csproj文件,此电池需要与一个Script Editor编组才能使用。


2、在GH使用C# Script EditorScript Parasite,并将它们编组。


3、决定C# Script Editor中的input和output,然后定义Script Parasite生成文件的位置并enable。


4、VSCode中打开生成的文件夹。(注意:不要打开单 一.cs和.csproj文件,而是要在VSCode中点击 “文件-打开文件夹…” 然后打开所在文件夹)


5、在VSCode中直接编程,一旦按下保存“CTRL+S”,VSCode中的编码将直接更新到C# Script Editor中,实现用VSCode替代C# Script Editor


6、如有需要,也可以在C# Script Editor中更改或添加内容(比如修改input和output),保存的内容也会反向更新到VSCode中。




优点:

1、VSCode比C# Script Editor更便于使用,但比VS更轻量化,是最适合建筑编程设计师的软件。

2、实时更新,任何编码中的改动都会直接反应到Rhino中。

3、双向联动,实现Script Editor和VSCode双向联动,可以根据需要使用任意一个编辑器。

4、文件导出,编码能自动以.cs文件形式导出,方便直接传递。




利用VSCode强大扩展程序功能


VS和VSCode


VSCode是轻量化、以编写代码为目的的编程软件,也是当下最适合建筑算法设计师的编程软件。其中强大的扩展程序能适应个性化的编程习惯并且大幅提高编程效率。以下分享几个实用的VSCode插件。


Code Spell Checker

修正拼写错误,配合"ctrl+."使用


Bracket Pair Colorizer 

这款插件可以给()、[]、{}这些常用括号显示不同颜色,当点击对应括号时能够用线段直接链接到一起,让层次结构一目了然


Better Comments

提供不同的注释颜色和方式


Kite

用AI来补全代码


当然也可以用VSCode来听音乐(网易云听歌插件)、看小说(微信读书插件)、看番剧(无数类似插件),毕竟程序猿的世界,是丰富多彩的……


Happy Coding !




PS: 这个方法有一个极小的问题:VSCode中的代码行数,和C# Script Editor中的不一样,因此会比较难在C# Script Editor的error message中定位VSCode的错误代码行。这一问题小z通过一个小代码已经解决,可联系小z得到Template模板。用此模板可以在编程过程中不用看Grasshopper面板,专注于在VSCode上编程、在Rhino视窗上检验编程结果。(10.8更新:新版插件已解决该问题)





--- Growing, Growing, Brighter Everyday ! ---